
from typing import List
class Solution:
    def getRow(self, rowIndex: int) -> List[int]:
        ret = []
        for i in range(rowIndex+1):
            row=list()
            for j in range(0,i+1):
                if j==0 or j==i:
                    row.append(1)
                else:
                    row.append(ret[i-1][j]+ret[i-1][j-1])
            ret.append(row)
        return ret[rowIndex]

    '''
    复杂度分析
    时间复杂度：O(numRows^2)。
    空间复杂度：O(1)。不考虑返回值的空间占用。
    '''

    # 递推
    def getRow2(self, rowIndex: int) -> List[int]:
        c = [[1]*(i+1) for i in range(rowIndex+1)]
        for i in range(0,rowIndex+1):
            for j in range(1,i):
                 c[i][j] = c[i-1][j-1] + c[i-1][j]
        return c[rowIndex]


    def getRow3(self, rowIndex: int) -> List[int]:
        row = [0] * (rowIndex+1)
        row[0] = 1
        for i in range(1,rowIndex+1):
            for j in range(i,0,-1):
                row[j]+=row[j-1]
        return row
    ''''
    复杂度分析
    时间复杂度：O(rowIndex 2 )。
    空间复杂度：O(1)。不考虑返回值的空间占用。
    '''
    def getRow4(self, rowIndex: int) -> List[int]:
        row = [1]*(rowIndex+1)
        for i in range(1,rowIndex+1):
            row[i] = row[i-1]*(rowIndex-i+1)//i
        return  row
    '''
    复杂度分析
    时间复杂度：O(rowIndex)。
    空间复杂度：O(1)。不考虑返回值的空间占用。
    '''

# print(Solution().getRow(3))

# row = [0]*5
# row[0]=1
# print(row)
row = [1,2,1]
for i in range(5,0,-1):
    print(i)













